﻿<?xml version="1.0" encoding="utf-8"?>
<Lambda>
	<Lambda.Parameters>
		<Parameter Name="self" Type="DynamicMethod" />
		<Parameter Name="value" Type="Double" />
	</Lambda.Parameters>
	<Lambda.Body>
		<Block>
			<Block.Variables>
				<Parameter Name="result" Type="Double" />
			</Block.Variables>
			<Block.Expressions>
				<Assign Left="{result}" Right="{1}" />
				<Loop>
					<Loop.BreakLabel>
						<LabelTarget Name="return" Type="Double" />
					</Loop.BreakLabel>
					<Loop.Body>
						<Conditional>
							<Conditional.Test>
								<GreaterThan Left="{value}" Right="{1}" />
							</Conditional.Test>
							<Conditional.IfTrue>
								<MultiplyAssign Left="{result}">
									<MultiplyAssign.Right>
										<PostDecrementAssign Operand="{value}" />
									</MultiplyAssign.Right>
								</MultiplyAssign>
							</Conditional.IfTrue>
							<Conditional.IfFalse>
								<Goto Target="return" Value="{result}" />
							</Conditional.IfFalse>
						</Conditional>
					</Loop.Body>
				</Loop>
			</Block.Expressions>
		</Block>
	</Lambda.Body>
</Lambda>